﻿<pre>
知识点一：递归函数
	名称：
		递归函数，函数递归，递归算法 等多个名字
		
	实现形式：
		函数自己调用自己叫递归
		
	核心思想：
		把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
		
	注意：
		递归必须有退出递归的条件否则成为死循环。
 	
 	特性：递归可以模拟循环，完成循环完成的任务，但是有些任务只能有递归完成。
 		例如：后期要掌握的，无限极分类、文件夹遍历功能，模拟类型系统的 getElementsByClassName等。
	
	
	案例1：使用递归输出1到3个数
		<script>
			function R(p){ 	
				if(p<4){			
					document.write(p); 
					R(++p);
				}
			}
			R(1);
		</script>
		特别注意：如果把以上函数改下如下结果差距很大
		<script>
			function R(p){ 	
				if(p<4){				
					R(++p);
					document.write(p);  //更换这一行的位置到下面
				}
			}
			R(1);
		</script>
	
	案例2：通过递归输出对称数字
		<script>		
			function R(p){ 	
				if(p>1){			
					document.write(p-1); 
					R(--p);
					document.write(p);
				}
			}
			R(3);
		</script>

 
 	
</script>
</pre>